'''
interfaces.py

Copyright 2009 Xavier Mendez Navarro aka Javi

This file is part of pysqlin

pysqlin is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation version 2 of the License.

pysqlin is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with pysqlin; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
'''

class IModuleLoader:
    def register(self, id, module):
	raise NotImplemented

    def end_loading(self, categories):
	raise NotImplemented


class IFilter:
    DB_QUERY, COOKIE, POST_DATA, URL = range(4)
    DB_ALL = 'all'

    def name(self):
	raise NotImplemented

    def summary(self):
	raise NotImplemented

    def database(self):
	raise NotImplemented

    def transform(self, request):
	raise NotImplemented

    def priority(self, request):
	raise NotImplemented

    def type(self):
	raise NotImplemented

class IPlugin:
    def name(self):
	raise NotImplemented

    def description(self):
	raise NotImplemented

    def init(self):
	raise NotImplemented

    def parameters(self):
	raise NotImplemented

    def commands(self):
	raise NotImplemented

class IInjector:
    def __init__(self, controller):
	self.__controller = controller

    def init(self, sqli, boss_queue, res_queue):
	raise NotImplemented

    def name(self):
	raise NotImplemented

    def description(self):
	raise NotImplemented

    def check_parameters(self):
	raise NotImplemented

    def parameters(self):
	raise NotImplemented

    def cancel_job(self):
	raise NotImplemented

    def run(self):
	raise NotImplemented

    def cardinality(self):
	raise NotImplemented

    def is_threadable(self):
	raise NotImplemented

    def launch_job(self, from_row, to_row):
	raise NotImplemented

